SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE dbo.sp_Audit_delTrigger 
@nombTabla varchar(128), @resultado bit output
--ESTO SIRVE PARA ELIMINAR LOS TRIGGERS CREADOS
--CON LA FINALIDAD DE AUDITAR LA TABLA MEDIANTE 
--EL SP_AUDIT_INSTRIGGER ...
AS
BEGIN TRAN
declare @mierror as bit
set @mierror=0 --SUPONEMOS QUE NO HAY ERROR
declare @trig as varchar(128)
declare triggAudit cursor for
	select name from sysobjects where OBJECTPROPERTY(id, N'IsTrigger') = 1
	and parent_obj=object_id(@nombTabla)
	and (name like 'auditUPD'+'%' OR name like 'auditINS'+'%' OR name like 'auditDEL'+'%')
open triggaudit
fetch next from triggaudit into @trig
while @@fetch_status=0
begin
	execute('drop trigger '+ @trig) --ESTA INTRUCCION NO DEBERIA OCASIONAR ERROR YA QUE ESTOY 
									--CARGANDO SOLO LOS DESENCADENADORES QUE EXISTEN
	if @@error <> 0 
		begin
		SET @MIERROR=1
		goto evaluacion
		end
	fetch next from triggaudit into @trig
end
evaluacion:

IF @MIERROR=0 
	BEGIN
	COMMIT
	PRINT 'Los trigger fueron eliminados correctamente.'
	END
ELSE
	BEGIN
	ROLLBACK
	PRINT 'Hubo un error al intentar eliminar el trigger '+@trig
	
	END
set @resultado=@mierror
close triggaudit
deallocate triggaudit
GO
